kubectl Cheat Sheet |
您所在的位置:网站首页 › kubectl port-forward5天 › kubectl Cheat Sheet |
kubectl Cheat Sheet Esta página contém uma lista de comandos kubectl e flags frequentemente usados. Kubectl AutocompleteBASHsource > ~/.bashrc # para adicionar o autocomplete permanentemente no seu shell bash.Você também pode usar uma abreviação para o atalho para kubectl que também funciona com o auto completar: alias k=kubectl complete -o default -F __start_kubectl k ZSHsource > ~/.zshrc # adicionar auto completar permanentemente para o seu shell zsh Uma nota sobre --all-namespacesAcrescentar --all-namespaces acontece com bastante frequência, onde você deve estar ciente da abreviação de --all-namespaces: kubectl -A Contexto e Configuração do KubectlDefine com qual cluster Kubernetes o kubectl se comunica e modifica os detalhes da configuração. Veja a documentação Autenticando entre clusters com o kubeconfig para informações detalhadas do arquivo de configuração. kubectl config view # Mostra configurações do kubeconfig mergeadas # use vários arquivos kubeconfig ao mesmo tempo e visualize a configuração mergeada KUBECONFIG=~/.kube/config:~/.kube/kubconfig2 kubectl config view # obtenha a senha para o usuário e2e kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}' kubectl config view -o jsonpath='{.users[].name}' # exibe o primeiro usuário kubectl config view -o jsonpath='{.users[*].name}' # obtém uma lista de usuários kubectl config get-contexts # exibe lista de contextos kubectl config current-context # exibe o contexto atual kubectl config use-context my-cluster-name # define o contexto padrão como my-cluster-name kubectl config set-cluster my-cluster-name # define uma entrada de cluster no kubeconfig # configura a URL para um servidor proxy a ser usado para solicitações feitas por este cliente no kubeconfig kubectl config set-cluster my-cluster-name --proxy-url=my-proxy-url # adiciona um novo cluster ao seu kubeconfig que suporte autenticação básica kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword # salva o namespace permanentemente para todos os comandos subsequentes do kubectl nesse contexto kubectl config set-context --current --namespace=ggckad-s2 # define um contexto utilizando um nome de usuário e o namespace kubectl config set-context gce --user=cluster-admin --namespace=foo \ && kubectl config use-context gce kubectl config unset users.foo # exclui usuário foo # alias curto para definir/mostrar contexto/namespace (funciona apenas para bash e shells compatíveis com bash, contexto atual a ser definido antes de usar kn para definir namespace) alias kx='f() { [ "$1" ] && kubectl config use-context $1 || kubectl config current-context ; } ; f' alias kn='f() { [ "$1" ] && kubectl config set-context --current --namespace $1 || kubectl config view --minify | grep namespace | cut -d" " -f6 ; } ; f' Kubectl applyapply gerencia aplicações através de arquivos que definem os recursos do Kubernetes. Ele cria e atualiza recursos em um cluster através da execução kubectl apply. Esta é a maneira recomendada para gerenciar aplicações Kubernetes em ambiente de produção. Veja a documentação do Kubectl. Criando objetosManifestos Kubernetes podem ser definidos em YAML ou JSON. As extensões de arquivo .yaml, .yml, e .json podem ser usadas. kubectl apply -f ./my-manifest.yaml # cria recurso(s) kubectl apply -f ./my1.yaml -f ./my2.yaml # cria a partir de vários arquivos kubectl apply -f ./dir # cria recurso(s) em todos os arquivos de manifesto no diretório kubectl apply -f https://git.io/vPieo # cria recurso(s) a partir de URL kubectl create deployment nginx --image=nginx # inicia uma única instância do nginx # cria um Job que exibe "Hello World" kubectl create job hello --image=busybox:1.28 -- echo "Hello World" # cria um CronJob que exibe "Hello World" a cada minuto kubectl create cronjob hello --image=busybox:1.28 --schedule="*/1 * * * *" -- echo "Hello World" kubectl explain pods # obtém a documentação de manifesto do pod # Cria vários objetos YAML a partir de stdin cat pod.yaml # Gera a especificação para executar o pod nginx e grave-a em um arquivo chamado pod.yaml kubectl attach my-pod -i # Anexa ao contêiner em execução kubectl port-forward my-pod 5000:6000 # Ouça na porta 5000 na máquina local e encaminhe para a porta 6000 no my-pod kubectl exec my-pod -- ls / # Executa comando no pod existente (1 contêiner) kubectl exec --stdin --tty my-pod -- /bin/sh # Acesso de shell interativo a um pod em execução (apenas 1 contêiner) kubectl exec my-pod -c my-container -- ls / # Executa comando no pod existente (pod com vários contêineres) kubectl top pod POD_NAME --containers # Mostra métricas para um determinado pod e seus contêineres kubectl top pod POD_NAME --sort-by=cpu # Mostra métricas para um determinado pod e classificá-lo por 'cpu' ou 'memória' Copiando arquivos e diretórios de e para contêinereskubectl cp /tmp/foo_dir my-pod:/tmp/bar_dir # Copia o diretório local /tmp/foo_dir para /tmp/bar_dir em um pod remoto no namespace atual kubectl cp /tmp/foo my-pod:/tmp/bar -c my-container # Copia o arquivo local /tmp/foo para /tmp/bar em um pod remoto em um contêiner específico kubectl cp /tmp/foo my-namespace/my-pod:/tmp/bar # Copia o arquivo local /tmp/foo para /tmp/bar em um pod remoto no namespace my-namespace kubectl cp my-namespace/my-pod:/tmp/foo /tmp/bar # Copia /tmp/foo de um pod remoto para /tmp/bar localmente Nota:kubectl cp requer que o binário 'tar' esteja presente em sua imagem de contêiner. Se 'tar' não estiver presente, kubectl cp falhará. Para casos de uso avançado, como links simbólicos, expansão curinga ou preservação do modo de arquivo, considere usar kubectl exec.tar cf - /tmp/foo | kubectl exec -i -n my-namespace my-pod -- tar xf - -C /tmp/bar # Copia o arquivo local /tmp/foo para /tmp/bar em um pod remoto no namespace my-namespace kubectl exec -n my-namespace my-pod -- tar cf - /tmp/foo | tar xf - -C /tmp/bar # Copia /tmp/foo de um pod remoto para /tmp/bar localmente Interagindo com implantações e serviçoskubectl logs deploy/my-deployment # despeja logs de pod para uma implantação (caso de contêiner único) kubectl logs deploy/my-deployment -c my-container # despeja logs de pod para uma implantação (caso de vários contêineres) kubectl port-forward svc/my-service 5000 # escuta na porta local 5000 e encaminhe para a porta 5000 no back-end do serviço kubectl port-forward svc/my-service 5000:my-service-port # escuta na porta local 5000 e encaminhe para a porta de destino do serviço com o nome kubectl port-forward deploy/my-deployment 5000:6000 # escuta na porta local 5000 e encaminhe para a porta 6000 em um pod criado por kubectl exec deploy/my-deployment -- ls # executa o comando no primeiro pod e primeiro contêiner na implantação (casos de um ou vários contêineres) Interagindo com Nós e Clusterkubectl cordon my-node # Marca o nó my-node como não agendável kubectl drain my-node # Drena o nó my-node na preparação para manutenção kubectl uncordon my-node # Marca nó my-node como agendável kubectl top node my-node # Mostra métricas para um determinado nó kubectl cluster-info # Exibe endereços da master e serviços kubectl cluster-info dump # Despeja o estado atual do cluster no stdout kubectl cluster-info dump --output-directory=/path/to/cluster-state # Despeja o estado atual do cluster em /path/to/cluster-state # Veja os taints existentes nos nós atuais. kubectl get nodes -o='custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect' # Se uma `taint` com essa chave e efeito já existir, seu valor será substituído conforme especificado. kubectl taint nodes foo dedicated=special-user:NoSchedule Tipos de RecursosLista todos os tipos de recursos suportados junto com seus nomes abreviados, grupo de API, sejam eles namespaced e Kind: kubectl api-resourcesOutras operações para explorar os recursos da API: kubectl api-resources --namespaced=true # Todos os recursos com namespace kubectl api-resources --namespaced=false # Todos os recursos sem namespace kubectl api-resources -o name # Todos os recursos com saída simples (apenas o nome do recurso) kubectl api-resources -o wide # Todos os recursos com saída expandida (também conhecida como "ampla") kubectl api-resources --verbs=list,get # Todos os recursos que suportam os verbos de API "list" e "get" kubectl api-resources --api-group=extensions # Todos os recursos no grupo de API "extensions" Formatação de saídaPara enviar detalhes para a janela do terminal em um formato específico, adicione a flag -o (ou --output) para um comando kubectl suportado. Formato de saídaDescrição-o=custom-columns=Exibe uma tabela usando uma lista separada por vírgula de colunas personalizadas-o=custom-columns-file=Exibe uma tabela usando o modelo de colunas personalizadas no arquivo -o=jsonSaída de um objeto de API formatado em JSON-o=jsonpath=Exibe os campos definidos em uma expressão jsonpath-o=jsonpath-file=Exibe os campos definidos pela expressão jsonpath no arquivo -o=nameExibe apenas o nome do recurso e nada mais-o=wideSaída no formato de texto sem formatação com qualquer informação adicional e, para Pods, o nome do nó está incluído-o=yamlSaída de um objeto de API formatado em YAMLExemplos usando -o=custom-columns: # Todas as imagens em execução em um cluster kubectl get pods -A -o=custom-columns='DATA:spec.containers[*].image' # Todas as imagens em execução no namespace: padrão, agrupadas por pod kubectl get pods --namespace default --output=custom-columns="NAME:.metadata.name,IMAGE:.spec.containers[*].image" # Todas as imagens excluindo "registry.k8s.io/coredns:1.6.2" kubectl get pods -A -o=custom-columns='DATA:spec.containers[?(@.image!="registry.k8s.io/coredns:1.6.2")].image' # Todos os campos sob metadados, independentemente do nome kubectl get pods -A -o=custom-columns='DATA:metadata.*'Mais exemplos na documentação de referência do kubectl. Verbosidade de saída do Kubectl e depuraçãoA verbosidade do Kubectl é controlado com as flags -v ou --v seguidos por um número inteiro representando o nível do log. As convenções gerais de log do Kubernetes e os níveis de log associados são descritos aqui. VerbosidadeDescrição--v=0Geralmente útil para sempre estar visível para um operador de cluster.--v=1Um nível de log padrão razoável se você não deseja verbosidade.--v=2Informações úteis sobre o estado estacionário sobre o serviço e mensagens importantes de log que podem se correlacionar com alterações significativas no sistema. Este é o nível de log padrão recomendado para a maioria dos sistemas.--v=3Informações estendidas sobre alterações.--v=4Detalhamento no nível de debugging.--v=5Verbosidade do nível de rastreamento.--v=6Exibe os recursos solicitados.--v=7Exibe cabeçalhos de solicitação HTTP.--v=8Exibe conteúdo da solicitação HTTP.--v=9Exibe o conteúdo da solicitação HTTP sem o truncamento do conteúdo.Próximos passosLeia a visão geral do kubectl e aprenda sobre JsonPath. Veja as opções do kubectl. Leia as Convenções de uso do kubectl para entender como usá-lo em scripts reutilizáveis. Ver mais comunidade kubectl cheatsheets. ComentáriosEsta página foi útil? Obrigado pelo feedback. Se você tiver uma pergunta específica sobre como utilizar o Kubernetes, faça em Stack Overflow. Abra um bug no repositório do GitHub se você deseja relatar um problema ou sugerir uma melhoria. Última modificação March 09, 2023 at 9:40 AM PST: Update and standardize pt-br cheatsheet (bc812e00d6) |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |